﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Noris.Tools.TraceVisualiser.Interface
{
    /// <summary>
    /// Prázdný interface, předek všech interface typu Plugin.
    /// Nepřináší žádnou povinnost, zajistí přednačtení služeb (typů) při startu systému.
    /// </summary>
    public interface IPlugin
    {
        /// <summary>
        /// Příznak, že Plugin je aktivní ve standardním běhu (tj. při běžném užiavtelském spuštění).
        /// Plně funkční pluginy tedy vrací true.
        /// Pluginy, které jsou ve vývoji, vrací false, takové jsou zobrazeny / spouštěny pouze v aplikaci, která běží v režimu Debug.
        /// </summary>
        bool Active { get; }
    }
    /// <summary>
    /// Interface, který předepisuje metodu Initialize().
    /// Využívá se tam, kde lze vytvářet objekty na základě jejich typu (System.Activator.CreateInstance()), a až následně po doběhnutí konstruktoru je inicializovat.
    /// </summary>
    public interface IInitialize
    {
        /// <summary>
        /// Metoda je volaná po vytvoření objektu.
        /// </summary>
        void Initialize();
    }
}
